This invention relates generally to systems for processing character information supplied from an input device and for providing character information to a printing apparatus. The invention more particularly concerns such a system in which character information is stored in a correction buffer.
There are a number of systems which process character information from an input device to drive a printing apparatus. Typically, the input device takes the form of a keyboard and the character information which is processed comprises incoming keystrokes. Usually, such systems also produce character information derived from the incoming keystrokes to be supplied to a display as well as to a printer.
An electronic typewriter, for example, generally includes a keyboard, a single line display, a printer apparatus, and an operating system to interface among the keyboard, the display, and the printer. Usually, the display, the printer assembly, and the operating system circuitry are contained in a single unit.
As another example, a personal computer system may be operated under software control to function as an electronic typewriter. One such system includes a microcomputer system unit, a keyboard, a display, and a printer.
In the first-mentioned exemplary electronic typewriter system, an operator depresses keys on the keyboard, and keystrokes are coupled to a microprocessor-based operating system in the typewriter. The operating system functions to provide information to the display and to the printer assembly and has associated memory for storage and retrieval of keystroke information developed from the keystrokes.
In such an electronic typewriter system, keystrokes are processed to place suitable keystroke information in a storage location known as a correction buffer, which contains, for example, keystroke information related to a single line of alphanumeric text. The keystroke information remains in the correction buffer so that the operator can enter, via the keyboard, modifications to the stored line of text such as deletions of characters or changes to characters.
In past electronic typewriter designs, characters have been stored in the correction buffer in a one-dimensional array in memory. This array of characters is intermixed with special codes indicating, for example, tab locations, overstrikes, and centered text. Relatively complex algorithms must then be employed to scan through the correction buffer to locate a particular character or characters intermixed with the special codes.
In such systems, pointers are maintained by the operating system for indicating the current positions for adding keystroke information to the correction buffer and for adding a character to the display. A pointer is also maintained for the position of the printhead along the current print line on the printer. As keystrokes are entered through the keyboard, keystroke information is added to the correction buffer, and to the display memory, and sent to the printer to move the printhead, as appropriate. As the keystrokes are processed, the various pointers are updated so that the correct locations for the entry of subsequent keystroke information are known.
In such systems, when printhead movement commands, such as tab commands, are received from the keyboard, the character information intermixed with special codes contained in the correction buffer must be scanned in a relatively time-consuming manner to determine the correct value to which to update the correction buffer pointer.
It is also difficult to perform operations dependent upon specific location of characters on paper by the print mechanism. For example, it has been difficult to center new text to the left of existing text on a line and to use various functions such as underscoring within centered text, due to the complexities of performing centering in conjunction with the entry of special printing codes in the correction buffer.
In some cases the display has a capacity which is less than the character storage capacity of the correction buffer. This results in a need to rewrite the display (rewrite the display memory) as the operating system moves to different locations in the correction buffer. It has been difficult and time-consuming to do this from the correction buffer, with its sequences of character and special code information.
It is the general purpose of the present invention to provide an improved correction buffer structure which eliminates many of the shortcomings enumerated above with regard to the correction buffers utilized in previous systems.